#!/bin/bash

if [ "$scriptpath" == "" ]; then
	if [ "$SCRIPTS" == "" ]; then
		# das $SCRIPTS ist noch unbekannt!
		# das muß leider zu fuß gesetzt werden, weil erst dadurch ecolog.sh gesourced werden kann, und DORT steht dann der pfad nochmal drin
		scriptpath="/u01/scripts/"
	else
		scriptpath="$SCRIPTS"
	fi
fi

includefile="startscriptutil.sh"
if [ ! -f $includefile ]; then
	if [ ! -f "$scriptpath/$includefile" ]; then
		echo "Cannot find required includefile $includefile"
		exit 10
	else
		. $scriptpath/$includefile
	fi
else
	. $includefile
fi

# nun Java, ecolog.sh und oracle checken!
check4All

scriptpfad=$( dirname $( which $0 ) )
# zu beginn auf jeden fall mal dorthin wechseln, wo das script liegt.
cd $scriptpfad

# service umgebung setzen. service-spezifisch!
# Achtung: folgende zuweisungen bzw. werte werden beim installieren gepatched!
service="connector"
SERVICEVAR="CON"
SERVICELOGVAR="CONLOGS"

# user auf das service setzen
ecologUser="${service}"

if [ ! $2 ] || [ "$2" == "${service}" ]; then
	# wenn kein name mitgegeben wurde, oder der serive-name, dann nehmen wir den default-wert in form des service-namens an
	# dazu sollte es natürlich auch das entsprechende properties geben
	name="${service}"
else
	name=$2
	service="${service}_${2}"
fi

if [ ! ${!SERVICEVAR} ] ; then
	# wenn nicht ueber /etc/profile.d/ecolog.sh gesetzt, dann manuell Pfad setzen
	echo "Achtung $service ist nicht in $ECOLOGENV konfiguriert! Ich arbeite im lokalen Verzeichnis!"
	eval "$SERVICEVAR=$PWD"
	eval "$SERVICELOGVAR=$PWD"
fi

# jetzt service root setzen, reinverzweigen und pidfile einstellen und evtl. erstellen
setServiceRootAndPid

# Hier können nun weitere service-spezifische einstellungen gemacht werden.

# bei unterschiedlichen Zeichensätzzen zwischen HOST und CILOG
# eventuell File-Encoding richtig setzen
# export LC_ALL=de_DE.iso88591
# export NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1


# zähler für die versuche für den eingebauten shutdown 
maxCount=10
actCount=0

# Nur bei richtig gegebenen properties-Name starten, da sonst Bloedsinn produziert wird
if [ ! -s $serviceRoot/conf/$name.properties ]; then
	echo -e "Für $name ist kein properties File vorhanden"
	deleteDummyPid
	exit 1
fi

# jetzt kommt die service konfiguration mit allen einzelheiten

# die main java klasse für diesen dienst
mainClass="at.ecolog.connector.ConnectorService"

# text nach dem in der prozessliste gesucht wird, für den fall, daß checkproc nicht erlaubt ist
# durch "name" im suchstring können wir gewährleisten, daß nur die instanz gefunden wird, die wir suchen, falls mehrere laufen sollten.
suchstring="${mainClass} ${name}"

# angabe eines eindeutigen files, welches vom dienst benutzt wird, für den fuser-kill
usedFile4FuserKill="$serviceRoot/lib/connector.jar"

# alle jar files aus dem lib verzeichnis scannen, AUSSER die classes*.jar und ojbdc14*jar
# wichtig: dieser string endet mit einem doppelpunkt!
jarfiles=$( findJarFiles )

# classpath zeile für den java-aufruf mit der der dienst gestartet werden kann
# hier wird noch alles was nötig ist um eine korrekte classpath zeile zu erhalten an die variable $jarfiles drangehängt
classPathString="-cp ${jarfiles}${serviceRoot}/conf:$ORACLE_HOME/jdbc/lib/$jdbc_class_jar"

# classpath und mainclass in einem string verpackt
classPathMainMethodString="$classPathString $mainClass"

# konfiguarationseinstellungen für properties usw.
# mit Xmx wird der maximale Speicher fixiert, den die applikation verbrauchen kann.
# braucht sie mehr, so läuft sie in eine outOfMemory-Exception. dann muß der -Xmx-Parameter erhöht werden
javaConfigString="$( detectJavaConfigOpts ) -Xmx200m -Duser.dir=$serviceRoot -Djava.library.path=$serviceRoot/lib"

# aufruf des case-blocks, der den start/stop/status befehl verarbeitet
startScriptExtendedCase $1 "$javaConfigString $classPathMainMethodString $name" "$javaConfigString $classPathMainMethodString shutdown $name"
